//https://www.luogu.com.cn/problem/solution/P1002
//题意：给一个图，图上有一些点不能去（马能踩的地方），问一格一格走（兵）总共有多少种方式到达终点
//思路：标记出合法（在图上）的不可去点，dp[i][j]表示可以到ij位置的走法，状态转移方程为dp[i][j]=dp[i-1][j]+dp[i][j-1];
#include<bits/stdc++.h>
using namespace std;
int main(){
    long long dp[45][45]={0},m[45][45]={0};
    int x,y,mx,my;
    scanf("%d%d%d%d",&x,&y,&mx,&my);
    m[mx][my]=1;
	if(mx>1 && my!=0) m[mx-2][my-1]=1;
	if(mx<19 && my!=0) m[mx+2][my-1]=1;
	if(mx>1 && my!=20) m[mx-2][my+1]=1;
	if(mx<19 && my!=20) m[mx+2][my+1]=1;
	if(mx!=0 && my>1) m[mx-1][my-2]=1;
	if(mx!=0 && my<19) m[mx-1][my+2]=1;
	if(mx!=20 && my>1) m[mx+1][my-2]=1;
	if(mx!=20 && my<19) m[mx+1][my+2]=1;
    dp[0][0]=1;
    for(int i=0;i<=x;i++){
        for(int j=0;j<=y;j++){
            if(m[i][j]) continue;
            if(i>0&&j>0)
                dp[i][j]=dp[i-1][j]+dp[i][j-1];
            else if(i==0&&j!=0){
                dp[i][j]=dp[i][j-1];
            }
            else if(j==0&&i!=0){
                dp[i][j]=dp[i-1][j];
            }
        }
    }
    printf("%lld",dp[x][y]);
    return 0;
}